Add Next.js SSH certificate portal#473
Open
archbilesherman wants to merge 7 commits into
Open
Conversation
…Badge/Skeleton, and added sign-in with NextAuth v5 OIDC (with dev-mode fallback if no provided established).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds the initial
portal/frontend for the SSH Certificate Signer dashboard described in #465.The portal provides a generic HPC/science gateway interface for users to view, inspect, filter, and revoke short-lived OpenSSH certificates issued by the SSH Certificate Signer service.
Current behavior
Portal application
Provides a Next.js 15 frontend under
portal/.Uses TypeScript and Tailwind CSS v4.
Uses shadcn/ui components for common UI primitives including buttons, dialogs, tables, badges, and skeleton loading states.
Provides a generic Custos/HPC portal layout with:
Includes a help/support button that uses a
mailto:link to open the user’s default email client with a prefilled example support request.Keeps UI language generic for HPC SSH certificate management and avoids deployment-specific branding.
Authentication/session behavior
.env.local.exampleto document required local authentication and API configuration values.The CILogon integration expects deployment/local environment variables for the OIDC issuer, client ID, client secret, callback URL, and Auth.js/NextAuth secret. No provider secrets are hardcoded.
Signer API proxy
/api/v1/*.GET /api/v1/userinfoGET /api/v1/certificatesGET /api/v1/certificates/{serial}POST /api/v1/revokeSSH Certificates dashboard
Moreaction.POST /api/v1/revokefor revocation requests.Tests and project hygiene
How to run
From
portal/:The portal expects the SSH Certificate Signer backend to be running separately and exposing the
/api/v1/*endpoints used by the portal.For local development, configure the portal environment using
.env.local.example.For local CILogon testing, the OIDC application should include the local callback URL used by the portal, for example:
Notes / future work
POST /api/v1/revokeis wired against the current backend contract. Backend-side revoked-state reflection in subsequent list/detail responses may continue to evolve.